package com.zmc.lostfound.system.vo;

import com.zmc.lostfound.common.valid.ValueIntList;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @author ZMC
 * @description 用户反馈查询请求体
 * @email 2869581855@qq.com
 * @date 2023-07-05 15:36:50
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("用户反馈查询请求体")
public class FeedbackQueryVO implements Serializable {

    private static final long serialVersionUID = 7031025186759206005L;

    /**
     * 反馈人id
     */
    @ApiModelProperty("反馈人id")
    @Min(value = 1, message = "反馈人id必须大于等于1")
    private Long userId;

    /**
     * 功能模块id
     */
    @ApiModelProperty("功能模块id")
    @Min(value = 1, message = "功能模块id必须大于等于1")
    private Long functionId;

    /**
     * 反馈类型(0:困惑与建议，1:Bug缺陷，2:申诉)
     */
    @ApiModelProperty("反馈类型(0:困惑与建议，1:Bug缺陷，2:申诉)")
    @ValueIntList(values = {0, 1, 2}, message = "反馈类型只能为0或1或2(0:困惑与建议，1:Bug缺陷，2:申诉)")
    private Integer type;

    /**
     * 当前页码
     */
    @ApiModelProperty("当前页码")
    @NotNull(message = "当前页码不能为null")
    @Min(value = 1, message = "当前页码必须大于或等于1")
    private Integer pageNo;

    /**
     * 页面大小
     */
    @ApiModelProperty("页面大小")
    @NotNull(message = "页面大小不能为null")
    @Min(value = 3, message = "页面大小必须大于或等于3")
    @Max(value = 100, message = "页面大小必须小于或等于100")
    private Integer pageSize;

}
